package com.jack.a2021_09_06day01;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import com.code.annotations.BindView;


//自定义注解

//面试
//注解的作用
//告诉其语法[需要总结，在26之前]，而且还要告知在项目中的作用
//注意：注解，单独是没有意义的
//1.结合apt：用于生成一些Java文件（ButterKnife、Dagger2、Hilt、Databinding）
//2.结合代码埋点：解决的是xxx[]，如Arouter、aspactJ
//3.注解+反射（XUtils、Lifecycle）


//枚举非常占用内存
//使用IntDef优化
//写一个实例（32）

//手写两个框架
//1.butterknife
//2.注解+反射+动态代理

//APT的作用（39、51，把javac说出来）：在代码编译期解析注解，并且生成新的 Java 文件，减少手动的代码输入。现在有很多主流库都用上了 APT，比如 Dagger2, ButterKnife, EventBus3 等

//碰到的问题

//01：29：50  process方法优化的点
//javac回调三次的原因（超级难的问题）


public class MainActivity extends AppCompatActivity {

    @BindView(R.id.tvText)
    TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        JackButterknife.bind(this);
        mTextView.setText("textview");
    }
}